﻿Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data.OleDb

'Documentación XML
''' <summary>
''' Este formulario comprobará el acceso a la aplicación.
''' </summary>
''' <author> Jerón Fernández Caballero Rico</author>
''' <author> Daniel Morato Baudi</author>

Public Class FormValidar

    Dim _Usuario As Usuario

    Private Sub Btn_Aceptar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_Aceptar.Click

        If Validar(tb_Usuario.Text, tb_Password.Text) Then

            FormEntrada.Show()
            Permisos(tb_Usuario.Text)
            Me.Visible = False

        Else
            MsgBox("El usuario o la contraseña son incorrectos.")
        End If

    End Sub

    Private Sub btn_Cancelar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_Cancelar.Click
        Me.Close()
    End Sub

    ''' <param name="Usuario">(String) Usuario del cual comprobaremos los permisos disponibles.</param>
    Public Sub Permisos(ByVal Usuario As String)
        Dim MiBD As New BaseDatos
        Dim Permisos As OleDbDataReader
        Dim Consulta As String

        Consulta = "SELECT Usuario.Nombre, Permisos.* " & _
                   "FROM Permisos RIGHT JOIN Usuario ON " & _
                   "Permisos.Id_Permisos = Usuario.Id_Permisos " & _
                   "WHERE (((Usuario.Nombre)='" & Usuario & "'))"

        Permisos = MiBD.Leer(Consulta)
        While Permisos.Read

            If CBool(Permisos(2)) = False Then
                FormEntrada.tsm_Archivo.Visible = False
            End If

            If CBool(Permisos(3)) = False Then
                Dim b As Boolean = CBool(Permisos(2))
                FormEntrada.tsm_Campeonato.Visible = False
            End If

            If CBool(Permisos(4)) = False Then
                FormEntrada.tsm_Gestion.Visible = False
            End If

            If CBool(Permisos(5)) = False Then
                FormEntrada.tsm_Configuracion.Visible = False
            End If

            If CBool(Permisos(6)) = False Then
                FormEntrada.tsm_Ayuda.Visible = False
            End If

        End While

    End Sub

    ''' <param name="Usuario">(String) Usuario a validar.</param>
    ''' <param name="Password">(String) Contraseña a validar.</param>
    Public Function Validar(ByVal Usuario As String, ByVal Password As String) As Boolean

        Dim ConsultaUsuario As String = ""
        Dim ConsultaPassword As String = ""
        Dim ComprobarUsuario As OleDbDataReader
        Dim ComprobarPassword As OleDbDataReader
        _Usuario = New Usuario

        ComprobarUsuario = _Usuario.ConsultarBD("Nombre", "Nombre = '" & Usuario & "'")
        ComprobarPassword = _Usuario.ConsultarBD("Contraseña", "Nombre = '" & Usuario & "'")

        While ComprobarUsuario.Read
            ConsultaUsuario = CStr(ComprobarUsuario(0))
        End While

        While ComprobarPassword.Read
            ConsultaPassword = CStr(ComprobarPassword(0))
        End While

        If Usuario = ConsultaUsuario And Password = ConsultaPassword Then
            Return True
        Else
            Return False
        End If

    End Function
End Class